%+----------------------------------------------+
%| Documentacion del PROYECTO : ALTIMETRO ALFA. |
%+----------------------------------------------+
%

\documentclass[a4paper,11pt,notitlepage]{article}
\usepackage{shadow}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{graphics}
\usepackage{hyperref}
\hypersetup{%
  pdfauthor={DMTC$^{2}$},
  pdftitle={Alt\'{i}metro alfa Versi\'on 2.0},
  pdfcreator={pdfLaTeX},
  pdfsubject={AVI\'ONICA},
  pdfkeywords={COHETER\'{I}A AMATEUR ELECTR\'ONICA AVI\'ONICA ALT\'{I}METRO},
  linkcolor=blue,
  colorlinks=true}
    
\setlength{\unitlength}{2em} % for the picture environment

\setlength{\parindent}{0pt}
\setlength{\parskip}{2ex}
\addtolength{\topmargin}{-1cm}
\addtolength{\textheight}{2cm}
\addtolength{\evensidemargin}{-1cm}
\addtolength{\oddsidemargin}{-1cm}
\addtolength{\textwidth}{2cm}

\newcommand{\pushin}{\hspace*{1em}}

\hyphenation{mo-de-los}
\hyphenation{rea-li-zar}
\hyphenation{con-si-de-rar}
\hyphenation{co-rres-pon-dien-tes}
\hyphenation{con-si-de-ra-mos}

\begin{document}
\pagestyle{empty}
\title{\Huge{Alt\'{i}metro \textbf{$\alpha$}}}
\author{}
\date{\Huge{Diciembre de 2006}}
%\maketitle
\begin{center}

\begin{tabular}{ccccc}
 \scalebox{0.26}{\includegraphics{Diego_Cappri_Reducida.jpg}}  & & & & \\
 \textbf{\Huge{D}}\LARGE{iego} & & & & \\
        \Large{Cappri} & & & & \\
 & \scalebox{0.1498}{\includegraphics{Marcelo_Hacker_Reducida.jpg}} & & & \\
 & \textbf{\Huge{M}}\LARGE{arcelo} & & & \\
 &         \Large{Hacker} & & & \\
 & & \scalebox{0.19}{\includegraphics{Tabare_Perez_Reducida.jpg}} & & \\
 & & \textbf{\Huge{T}}\LARGE{abar\'e} & & \\
 & &         \Large{P\'erez} & & \\
 & & & \scalebox{0.241}{\includegraphics{Cesar_Dalceggio_Reducida.jpg}} &  \\
 & & & \textbf{\Huge{C}}\LARGE{\'esar} & \\
 & & &        \Large{Dalceggio} & \\
 & & & & \scalebox{0.23}{\includegraphics{Cristian_Davolio_Reducida.jpg}} \\
 & & & & \textbf{\Huge{C}}\LARGE{ristian} \\
 & & & &         \Large{Davolio} \\
\end{tabular}

\LARGE{DMTC$^{2}$}

\textbf{\Huge{Alt\'{i}metro $\alpha$}}

\small{Versi\'on 2.0 - Febrero de 2007}

\end{center}

\newpage
\pagestyle{plain}

El autor de este trabajo es el grupo \textbf{DMTC$^2$} cuyos integrantes son :

\begin{center}

\begin{tabular}{ccccc}
\LARGE{\textbf{D}{iego}} & \LARGE{\textbf{M}arcelo} &
\LARGE{\textbf{T}abar\'e} & \LARGE{\textbf{C}\'esar} &
\LARGE{\textbf{C}ristian} \\
\Large{Cappri} & \Large{Hacker} & \Large{P\'erez} & \Large{Dalceggio} & \Large{Davolio} \\
\end{tabular}

\end{center}

El mail que deber\'a ser usado para cualquier tema realcionado con este
proyecto es :

\begin{center}
\textbf{\Huge{\texttt{altimetro\_dmtc2@yahoo.com.ar}}}
\end{center}

La atribuci\'on de este trabajo se debe hacer al grupo o a todos sus integrantes.

\section*{Responsabilidades} 
Todo el material se entrega tal cual est\'a presentado y tiene como \'unico y
exclusivo prop\'osito el informativo.

Los autores no asumen ninguna responsabilidad por el uso que se haga de la
informaci\'on contenida en el presente documento o los dispositivos
construidos a partir de la misma.

No se realizar\'a ninguna modificaci\'on por pedido. Las sugerencias ser\'an
bienvenidas, pero los autores se reservan el absoluto derecho a hacer con
ellas lo que ellos consideren pertinente.
 
La presente documentaci\'on no genera ninguna forma de compromiso, por parte
de los autores respecto al posterior soporte, actualizaci\'on o
modificaciones de la misma.

Tampoco genera ninguna obligatoriedad en seguir difundiendo informaci\'on
alguna sobre futuras ampliaciones, cambios efectuados o a efectuarse.


\newpage
\section*{Licencia de uso y distribuci\'on}

Este trabajo se distribuye, en esta primera versi\'on, bajo una licencia del
tipo : 

\begin{center}
\href{http://creativecommons.org/licenses/by-nc-nd/2.5/deed.es_AR}{Creative
  Commons Atribuci\'on-No Comercial-Sin Derivadas 2.5}

\includegraphics{cc_by_nc_nd.png}

\end{center}

Esto significa que cualquier persona es libre de:

\begin{enumerate}
\item \textbf{Copiar}
\item \textbf{Distribuir}
\item \textbf{Exhibir}
\item \textbf{Ejecutar la obra}
\end{enumerate}

Estas acciones se podr\'an realizar bajo las siguientes condiciones:

\begin{description}
\item [Atribuci\'on] - Usted debe atribuir la obra en la forma especificada por
  el autor o el licenciante.
\item [No comercial] - Usted no puede usar esta obra con fines comerciales.
\item [Sin obras derivadas] - Usted no puede alterar, transformar o crear sobre
  esta obra.
\item [Reutilizaci\'on o distribuci\'on] - Ante cualquier reutilizaci\'on o
  distribuci\'on, usted debe dejar claro a los otros los t\'erminos de la
  licencia de esta obra.
\item [Permisos] - Cualquiera de estas condiciones puede dispensarse si usted
  obtiene permiso del titular de los derechos de autor.
\end{description}

\newpage
\tableofcontents

\newpage
\section{Introducci\'on: Alt\'{i}metro $\alpha$ versi\'on 2.0}

En esta nueva entrega se describen las modificaciones incorporadas en esta
nueva versi\'on del alt\'{i}metro:

\begin{itemize}
\item Circuito impreso en doble faz con mejoras en el trazado de las pistas de
  alimentaci\'on y de la se\~nal del sensor de presi\'on.
\item Implementaci\'on de un algoritmo para la estimaci\'on de la altura
  m\'axima lograda en metros. En los ap\'endices se incluye una descripci\'on
  de este problema y de su desarrollo en el microcontrolador.
 
\end{itemize}

Se incluyen adem\'as los diagramas de flujo del firmware.

\newpage
\section{Objetivo.}

Dise\~nar y construir un alt\'{i}metro digital para uso en coheter\'{i}a
experimental amateur con las siguientes especificaciones funcionales:

\begin{enumerate}

  \item Dos eventos de eyecci\'on: drogue y principal.
  \item Control de continuidad de las cargas de eyecci\'on.
  \item Sensor barom\'etrico de presi\'on para la estimaci\'on de la altura de
  los siguientes eventos :

      \begin{enumerate}
       \item Detecci\'on de despegue.
       \item Detecci\'on de apogeo para registro de la m\'axima altura
             lograda y eyecci\'on del drogue.
       \item Detecci\'on de la altura, preprogramada, de eyecci\'on del
             sistema principal de recuperaci\'on.
       \item Detecci\'on del aterrizaje. 
      \end{enumerate}
      
      \item Interfase ac\'ustica y visual con led de alto brillo para comunicar
      estados del sistema y la altura m\'axima lograda seg\'un un protocolo
      definido.

      \item Conexi\'on con interfaz serial de comunicaciones externa.
     
\end{enumerate}

\section{Caracter\'{i}sticas t\'ecnicas.}

Para cumplir con los requerimientos especificados se decidi\'o usar los
siguientes elementos y herramientas de desarrollo:

\begin{enumerate}

  \item Sensor barom\'etrico Motorola MPX5100A (presi\'on absoluta).
  \item Plataforma de control basada en PIC12F675 en su versi\'on PDIP.
  \item Programaci\'on en assembler con la sint\'axis de Microchip (MPLAB como
        ambiente de desarrollo). 
  \item Sistema de grabaci\'on del firmware basado en IC-PROG y hardware de
        bajo costo tipo JDM. 
  \item Dise\~no del circuito y trazado del impreso hecho en Eagle.
  
\end{enumerate}

\newpage
\section{Descripci\'on de la electr\'onica.}

La alimentaci\'on est\'a resuelta utilizando como fuente de energ\'{i}a una
bater\'{i}a de 9\,V alcalina y un regulador de voltaje
\href{www.national.com}{LM78L05} que nos asegura una alimentaci\'on de 5\,V muy
  confiable.

El desarrollo del alt\'{i}metro est\'a basado en un microcontrolador de la
familia \href{http://es.wikipedia.org/wiki/Microcontrolador_PIC}{PIC}, m\'as
especificamente el modelo
\href{http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en010114}{PIC12F675}
en su versi\'on PDIP de 8 pins.

Su arquitectura es
\href{http://es.wikipedia.org/wiki/Arquitectura_Harvard}{Hardvard} (datos y
programas se almacenan en regiones separadas del computador a diferencia de la
arquitectura \href{http://es.wikipedia.org/wiki/Arquitectura_von_Neumann}{von
  Neumann}) y es un microcontrolador
\href{http://es.wikipedia.org/wiki/RISC}{RISC} (Reduced Instruction Set
Computer) de 8 bits con 35 instrucciones de una sola palabra de 14 bits cada
una.

Est\'a basado en tecnolog\'{i}a
\href{http://es.wikipedia.org/wiki/Memoria_Flash}{FLASH} -
\href{http://es.wikipedia.org/wiki/CMOS}{CMOS}.

Tiene integrado diversos perif\'ericos :

\begin{itemize}
  \item 6 pins de entrada/salida programables.
  \item 2 temporizadores/contadores integrados de 8 y 16 bits respectivamente.
  \item Conversor
     \href{http://es.wikipedia.org/wiki/Conversor_anal%C3%B3gico-digital}{anal\'ogico/digital}
     de 4 canales y 10 bits de resoluci\'on.
  \item Comparador anal\'ogico.
\end{itemize}

Casi todos los pins de este mirocontrolador son multifunci\'on y es por
programa que uno elije la funcionalidad deseada.

El otro componente fundamental de este proyecto es el
\href{http://es.wikipedia.org/wiki/Sensor}{sensor} de presi\'on
\href{http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPX5100&fsrch=1}{MPX5100A}.

Es un transductor piezo-resistivo que pone a disposici\'on en una de sus patas
un voltaje entre 0.2\,V y 4.7\,V que es proporcional a la presi\'on a la cual
est\'a sometido. 

El rango de trabajo es de
\href{http://es.wikipedia.org/wiki/Unidades_de_presi%C3%B3n}{15\,kPa a 115\,kPa}
de presi\'on.

Como el voltaje de salida del sensor est\'a acondicionado, se puede conectar
directamente al conversor anal\'ogico/digital del microcontrolador para, de esta
forma, transformarlo en un valor num\'erico que nos estar\'a indicando la
presi\'on correspondiente a la altura a la cual se encuentra nuestro vector.

El alt\'{i}metro implementa un algoritmo de estimaci\'on de la altura m\'axima
lograda en metros. Un aviso ac\'ustico, seg\'un el protocolo establecido,
indicar\'a luego del aterrizaje este valor. De la misma manera, al encender el
alt\'{i}metro para un nuevo vuelo, la \'ultima estimaci\'on de altura es
comunicada.

Para el encendido de las cargas de eyecci\'on del drogue y del sistema
principal de recuperaci\'on, se utilizan transistores
\href{http://es.wikipedia.org/wiki/MOSFET}{MOSFET} 
\href{http://www.tranzistoare.ro/datasheets/166/283672_DS.pdf}{IRF510}
comandados por dos pins del microcontrolador configurados como salidas.

Otros dos pins configurados como entradas permiten verificar la continuidad de
las cargas de eyecci\'on.

Toda la comunicaci\'on del alt\'{i}metro se realiza usando se\~nales
ac\'usticas generadas por un buzzer y se\~nales luminosas generadas por un 
\href{http://es.wikipedia.org/wiki/LED}{LED} de alto brillo.

En la siguientes secciones se presenta la lista de materiales, el diagrama de conexiones el\'ectricas de
todo el sistema, el trazado del circuito impreso y la disposici\'on f\'{i}sica
de todos los componentes electr\'onicos.

%\newpage
\subsection{Lista de materiales.}

\vspace{1cm}

\begin{tabular}{|c|c|c|c|c|} \hline 
\textbf{Parte}    & \textbf{Valor}         & \textbf{Dispositivo} & \textbf{Encapsulado}  & \textbf{Observaciones} \\ \hline \hline
MPX5100A &                 & MPX5100A      &                & Sensor barom\'etrico Motorola \\ \hline
IC1      &                 & PIC12F675     &  DIL8          & Microprocesador Microchip \\ \hline
IC2      &                 & 78L05         &  TO92          & Regulador de tensi\'on \\ \hline
BUZZER   &                 & Buzzer 12\,V  &  $\Phi$=11\,mm & Con oscilador \\ \hline
LED1     &                 & LED           &  $\Phi$=5\,mm  & Rojo de alta intensidad \\ \hline
Q1       &                 & IRF510        &  TO220         & FET \\ \hline
Q2       &                 & IRF510        &  TO220         & FET \\ \hline
T1       &                 & BC337         &  TO92          & NPN \\ \hline 
C1       & 0.47\,$\mu$F    & Capacitor     &                & Electrol\'{i}tico 25\,V-50\,V \\ \hline 
C2       & 1000\,$\mu$F    & Capacitor     &                & Electrol\'{i}tico 10\,V \\ \hline
C3       & 0.01\,$\mu$F    & Capacitor     &                & Cer\'amico (103) \\ \hline
C4       & 0.01\,$\mu$F    & Capacitor     &                & Cer\'amico (103) \\ \hline
C5       & 0.01\,$\mu$F    & Capacitor     &                & Cer\'amico (103) \\ \hline
R1       & 100\,$\Omega$   & Resistencia   &                & 0.25\,W \\ \hline 
R2       & 10K\,$\Omega$   & Resistencia   &                & 0.25\,W \\ \hline
R3       & 10K\,$\Omega$   & Resistencia   &                & 0.25\,W \\ \hline
R4       & 100K\,$\Omega$  & Resistencia   &                & 0.25\,W \\ \hline
R5       & 47K\,$\Omega$   & Resistencia   &                & 0.25\,W \\ \hline
R6       & 100K\,$\Omega$  & Resistencia   &                & 0.25\,W \\ \hline
R7       & 47K\,$\Omega$   & Resistencia   &                & 0.25\,W \\ \hline
R8       & 10K\,$\Omega$   & Resistencia   &                & 0.25\,W \\ \hline
R9       & 1K\,$\Omega$    & Resistencia   &                & 0.25\,W \\ \hline
R10      & 650\,$\Omega$   & Resistencia   &                & 0.25\,W \\ \hline
X1       &               & Jumper de encendido &          & 2 pins c/traba \\ \hline
X2       &               & Bloque conector     &          & 2 pins p/bater\'{i}a de 9\,V \\ \hline
X3       &               & Bloque conector     &          & 2 pins p/ignitor apogeo \\ \hline
X4       &               & Bloque conector     &          & 2 pins p/ignitor principal \\ \hline
X5       &               & Jumper comm         &          & 4 pins c/traba p/comm serial \\ \hline

\end{tabular}

\newpage
\subsection{Esquema de conexiones.}

\begin{center}
\rotatebox{270}{\scalebox{0.385}{\includegraphics{circuito.png}}}
\end{center}

\newpage
\subsection{Circuito impreso en simple faz y distribuci\'on de componentes.}

Incluimos la versi\'on simple faz del circuito, junto con la m\'ascara de
distribuci\'on de componentes, para dar la opci\'on a que cualquier interesado
pueda construir su propio impreso usando cualquiera de las t\'ecnicas
disponibles en internet.

\begin{center}

\begin{tabular}{c}
\\
\Huge{M\'ascara de componentes} \\
\\
\includegraphics{mascara_componentes.png} \\
\\
\Huge{Impreso simple faz} \\
\\
\scalebox{0.24}{\includegraphics{impreso.png}} \\ 
\end{tabular}

\end{center}

\newpage
\subsection{Circuito impreso en doble faz y distribuci\'on de componentes.}

Como anunciamos en la introducci\'on, este dise\~no en doble faz incorpora
mejoras en el trazado de las pistas de alimentaci\'on y de la se\~nal del
sensor de presi\'on.

Para la construcci\'on de este impreso es recomendable recurrir a empresas
especializadas en este tipo de trabajo.

La construcci\'on artesanal es posible pero es m\'as compleja que la versi\'on
de una sola faz teniendo en cuenta que tenemos orificios pasantes de una cara
a otra que deben estar alineados y conectados.

\begin{center}

\begin{tabular}{c}
\\
\Huge{M\'ascara de componentes} \\
\\
\includegraphics{mascara_componentes.png} \\
\\
\Huge{Cara superior del impreso} \\
\\
\includegraphics{top.png} \\
\\
\Huge{Cara inferior del impreso} \\
\\
\includegraphics{bottom.png} \\
\end{tabular}

\end{center}
\newpage
\subsection{Montaje final.}

Tr\'as haberse efectuado varios ensayos operativos del alt\'{i}metro, se opt\'o por
efectuar unos cambios menores en el circuito, a fin de lograr el correcto
funcionamiento y simplificaci\'on del mismo.
 
Dichas modificaciones no implican ning\'un cambio en el circuito impreso, sino a
nivel de montaje de los componentes.
 
A saber:

\begin{itemize}
\item La \texttt{R1} de 100\,$\Omega$ deber\'a ser reemplazada por un puente.
\item La \texttt{R9} de 1\,K$\Omega$ deber\'a ser reemplazada por un puente en caso de usarse un
  buzzer de 12\,V.
\item Los capacitores \texttt{C4} y \texttt{C5} de 0.01\,$\mu$F son opcionales y pueden ser omitidos.
\item El capacitor \texttt{C2} de 1000\,$\mu$F es opcional. El alt\'{i}metro ha sido probado
  exitosamente sin \'este capacitor.
\end{itemize} 

Todos los diagramas y dibujos se realizaron usando el CAD para electr\'onica
\href{http://www.cadsoft.de/}{Eagle}. Este sistema, con el agregado de
\href{http://www.matwei.de/doku.php?id=en:eagle3d:eagle3d}{Eagle3D} y el
render \href{www.povray.org}{PovRay}, permiten visualizar, en forma
virtual, c\'omo va a quedar el dispositivo electr\'onico terminado.

Para el caso del Alt\'{i}metro $\alpha$ obtenemos las siguientes imagenes
virtuales y sus correspondientes reales luego del montaje de la primer unidad:

\begin{center}
\begin{tabular}{cc}
\scalebox{0.15}{\includegraphics{Vista1_3D.jpg}} &
\scalebox{0.15}{\includegraphics{Vista2_3D.jpg}} \\
Vista virtual \#1 & Vista virtual \#2 \\
\scalebox{0.12}{\includegraphics{Vista1_Foto.jpg}} &
\scalebox{0.12}{\includegraphics{Vista2_Foto.jpg}} \\
Vista real \#1 & Vista real \#2 \\
\end{tabular}
\end{center}

\newpage
El aspecto que tiene la nueva versi\'on del alt\'{i}metro es la siguiente en
su versi\'on virtual ya que no se dispone de placas doble faz construidas
hasta el momento de la creaci\'on de este documento:
\begin{center}
  \scalebox{0.8}{\includegraphics{Altimetro_DMTC-Doble_faz.jpg}}
\end{center}

\subsection{Carga del firmware.}

El firmware necesario para la operatoria del alt\'{i}metro se entregar\'a listo y
compilado (.HEX) a quienes lo soliciten por mail a la direcci\'on de referencia
\footnote{\textbf{altimetro\_dmtc2@yahoo.com.ar}} y el mismo deber\'a ser cargado mediante una
grabadora acorde y compatible con la serie PIC12F675 de MicroChip.
 
Se deber\'a tener la precauci\'on de resguardar el valor de calibrado del
oscilador interno, almacenado en la \'ultima direcci\'on de memoria (03FF), ya
que de ello depender\'a el correcto funcionamiento del firmware grabado en el
microcontrolador.

Algunos sistemas de grabaci\'on de PICs respetan este hecho pero muchos otros
no. Se recomienda verificar esto en la documentaci\'on del grabador.

Por precauci\'on siempre es conveniente leer primero el PIC y anotar el valor
ubicado en esa direcci\'on como respaldo. Si dicho valor es borrado cuando el
archivo HEX es cargado en el sistema de grabaci\'on, lo podemos colocar a mano
en la direcci\'on correspondiente para luego proceder a grabar el firmware.

\section{Manejo del alt\'{i}metro.}

Con el alt\'{i}metro en la bah\'{i}a de carga del cohete y las cargas de
eyecci\'on instaladas adecuadamente, la secuencia de
trabajo en el campo de vuelo es la siguiente :
 
\begin{enumerate}
\item Jumper de encendido desconectado.
\item Conectar ignitor \#1 (Apogeo).
\item Conectar ignitor \#2 (Principal) - Esto puede obviarse en caso de no usar
  un dual-deployment.
\item Conectar la bater\'{i}a.
\item Colocar el jumper de encendido.
\end{enumerate}

\subsection{Estructura de la comunicaci\'on.}

En los ap\'endices se encuentra la descripci\'on del protocolo
ac\'ustico/\'optico usado para todas la comunicaciones del alt\'{i}metro con
su operador.

 El alt\'{i}metro seguir\'a este ciclo de comunicaciones desde su encendido hasta su
 recuperaci\'on:

 \begin{enumerate}
   
 \item Encendido del alt\'{i}metro: \textbf{OK} + \textbf{NO OK}.
   
 \item Chequeo de continuidad del ignitor \#1: \textbf{OK} o \textbf{NO OK} de
   acuerdo al resultado del mismo.
   
 \item Chequeo de continuidad del ignitor \#2: \textbf{OK} o \textbf{NO OK} de
   acuerdo al resultado del mismo.
   
 \item Comunica, usando el protocolo ac\'ustico/\'optico definido, la
   estimaci\'on de la m\'axima altura lograda en metros en el \'ultimo vuelo
   en el \'orden habitual de despliegue de un n\'umero en base decimal ( valor
   de miles, valor de centenas, valor de decenas, valor de unidades).
 
 \item Toma de altitud nivel del suelo efectuada: \textbf{OK} o \textbf{NO OK}
   de acuerdo al resultado del mismo.
 
 \item Se detectan los siguientes eventos:

    \begin{enumerate}
    \item Despegue.
    \item Apogeo.
    \item Altura de despliegue del sistema de recuperaci\'on principal.
    \item Aterrizaje.
    \end{enumerate}
    
  \item Comunica, usando el protocolo ac\'ustico/\'optico definido, la altura
    m\'axima alcanzada en metros en el \'orden habitual de despliegue de un
    n\'umero en base decimal ( valor de miles, valor de centenas, valor de
    decenas, valor de unidades).

\end{enumerate}

Este \'ultimo punto se repetir\'a como trama (cada 3 segundos) hasta el apagado
del alt\'{i}metro.

\section{L\'ogica de funcionamiento del firmware de vuelo.}

El firmware de control de vuelo consta de dos procesos:

\begin{enumerate}
\item Programa principal.
\item Rutina de servicio de interrupciones (\textbf{ISR})
\end{enumerate}

\subsection{Programa principal.}

El programa principal es el que toma el control desde el momento del
encendido del alt\'{i}metro. 

Las funciones del programa principal son:

\begin{enumerate}

\item Configuraci\'on de todos los pins del microcontrolador.

\item Configuraci\'on de o de los eventos que van a disparar la rutina de
  servicio de las interrupciones.
  
\item Comunicaci\'on mediante una interfase ac\'ustico/\'optica de los
  diferentes estados del sistema y de la altura m\'axima alcanzada en metros
  seg\'un un protocolo preestablecido.

\item Detecci\'on de todos los eventos relevantes para el vuelo del cohete:

  \begin{itemize}

  \item Cohete en rampa.

  \item Despegue.

  \item Apogeo.

  \item Altura de eyecci\'on del sistema principal de recuperaci\'on.

  \item Aterrizaje.

  \end{itemize}

\item Control del sistema de recuperaci\'on seg\'un los eventos detectados.

\end{enumerate}

En los ap\'endices se encuentra el diagrama de flujo correspondiente a este
m\'odulo.

\subsection{Rutina de servicio de interrupciones (\textbf{ISR)}.}

Esta rutina\footnote{La sigla \textbf{ISR} corresponde a \textbf{I}nterrupt
  \textbf{S}ervice \textbf{R}outine.} se activa por desborde del TIMER0 del
microcontrolador. Este desborde est\'a programado para que se produzca cada
4.096\,ms.

Cada vez que se produce el desborde del timer la \textbf{ISR} se activa y
ejecuta las siguientes operaciones:

\begin{enumerate}
\item Controla la adquisici\'on del dato anal\'ogico del sensor de presi\'on.
\item Procesa el dato digital obtenido. 
\end{enumerate}

El proceso digital de la se\~nal consiste en realizar un filtrado para que no se
produzcan detecciones de eventos falsos (despegue, apogeo, despliegue del
sistema principal de recuperaci\'on y aterrizaje) y que la estimaci\'on de la
altura m\'axima alcanzada tenga una precisi\'on y exactitud adecuadas.

En los ap\'endices se encuentra el diagrama de flujo correspondiente a este
m\'odulo.

El firmware fue escrito en assembler y compilado en el entorno de trabajo
MPLAB de Microchip.

Para la grabaci\'on del firmware en el microcontrolador se us\'o el software
\href{http://www.ic-prog.com}{IC-PROG} y una tarjeta de grabaci\'on de bajo
costo tipo \href{http://users.tpg.com.au/btkelly/jdm_b.htm}{JDM Programmer}. 

\section{Ensayos operativos.}

Los siguientes ensayos se realizaron para la versi\'on 1.0 del alt\'{i}metro.

Se realizaron varios ensayos operativos
\href{http://www.youtube.com/watch?v=v-CarBSXGhg}{(video)} en tierra para
verificar el correcto funcionamiento de todo el sistema.

Luego se pas\'o a la fase de pruebas en vuelo.

La siguiente secuencia de fotos documenta la preparaci\'on para el primer
vuelo de prueba del alt\'{i}metro.

En este primer vuelo se conect\'o al disparo del drogue, que se dispara en el
apogeo un cartucho con ferrite para tener una marca visual de este evento.

\begin{center}
\begin{tabular}{ccc}

\scalebox{0.15}{\includegraphics{01_altimetro_vista_general.jpg}} &
\scalebox{0.15}{\includegraphics{02_altimetro_carga_trazadora_en_apogeo.jpg}} &
\scalebox{0.150}{\includegraphics{03_altimetro_aislacion_inferior.jpg}} \\
Vista general & Carga trazadora & Aislaci\'on inferior \\

\scalebox{0.15}{\includegraphics{04_altimetro_soporte_prfv_vista_inferior.jpg}} &
\scalebox{0.15}{\includegraphics{05_altimetro_soporte_prfv_vista_lado_bateria.jpg}} &
\scalebox{0.15}{\includegraphics{06_altimetro_soporte_prfv_vista_lateral.jpg}} \\
Vista inferior & Vista del lado de la bater\'{i}a & Vista lateral \\

\scalebox{0.15}{\includegraphics{07_bahia_de_carga.jpg}} &
\scalebox{0.15}{\includegraphics{08_altimetro_en_bahia_de_carga.jpg}} &
\scalebox{0.15}{\includegraphics{09_bahia_de_carga_en_cohete.jpg}} \\
Bah\'{i}a de carga & Alt\'{i}metro en la bah\'{i}a de carga & Bah\'{i}a de carga en cohete \\

 & \scalebox{0.15}{\includegraphics{10_listo_para_ensayo.jpg}} & \\
 & \href{http://www.youtube.com/watch?v=AshBXy-GXK8}{Listo para el primer vuelo (video)} & \\

\end{tabular}
\end{center}

Los ensayos correspondientes a la versi\'on 2.0 se realizaron en las siguientes
condiciones de simulaci\'on:

\begin{itemize}
\item Entorno MPLAB.
\item Cicuito montado en protoboard y mini-c\'amara  barom\'etrica :

\begin{center}
  \begin{tabular}{cc}
    C\'amara abierta & C\'amara cerrada \\
    \scalebox{0.10}{\includegraphics{camara_abierta.jpg}} & 
    \scalebox{0.10}{\includegraphics{camara_cerrada.jpg}}
  \end{tabular}
\end{center}
\item Comparaci\'on de funcionamiento del \textbf{Alt\'{i}metro \LARGE{$\alpha$}} y un
  alt\'{i}metro comercial Perfectflite miniALT/WD.
\end{itemize}

Nos vamos a detener a analizar este \'ultimo punto. Al no disponer de
elementos metrol\'ogicos adecuados utilizamos el alt\'{i}metro Perfectflite
para verificar el funcionamiento de nuestro alt\'{i}metro.

Los ensayos comparativos se efectuaron en la la mini-c\'amara barom\'etrica. 

La siguiente tabla muestra el resultado de 4 ensayos realizados:

\begin{center}
\scalebox{0.70}{\includegraphics{tabla_ensayos.png}}
\end{center}

El video del \'ultimo ensayo est\'a disponible
\href{http://www.youtube.com/watch?v=LtZBj-b0oJI}{\textbf{AC\'A}}.

En el video pueden ver el \textbf{Alt\'{i}metro \LARGE{$\alpha$}} conectado a dos foquitos con una
cubierta azul y el Perfectflite (PF) con 2 foquitos destapados.

Al aspirar el aire de la c\'amara barom\'etrica, el \textbf{Alt\'{i}metro \LARGE{$\alpha$}}
detecta el ``despegue'' con un destello del led y al llegar al apogeo se encienden
los ignitores del \textbf{\LARGE{$\alpha$}} (abajo a la derecha) e inmediatamente destella el del
Perfectflite (abajo a la izquierda).

Un segundo despu\'es, se enciende el ignitor del principal del \textbf{\LARGE{$\alpha$}}
(arriba a la derecha) y casi simult\'aneamente destella el ignitor del
Perfectflite (arriba a la izquierda).

Al cabo de 10\,s aproximadamente ambos alt\'{i}metros detectan en forma casi simult\'anea
el ``aterrizaje''.

El \textbf{\LARGE{$\alpha$}} apaga en ese momento los foquitos. Ambos comienzan a indicar la
``altitud'' alcanzada.

En el caso del Perfectflite indic\'o: 1800pies (549\,m) y el \textbf{\LARGE{$\alpha$}} indic\'o una altitud
de 553\,m, es decir \textbf{MENOS DE 1\% DE DIFERENCIA ENTRE AMBOS! (4m)}.

En los dem\'as ensayos realizados, se verific\'o exactamente el mismo
comportamiento.

El m\'etodo de detecci\'on de aterrizaje es totalmente distinto en ambos
alt\'{i}metros:
\begin{itemize}
\item  El Perfectflite determina que se produjo un aterrizaje al darse por
cumplidas las siguientes 2 condiciones:

    \begin{enumerate}
    \item Se haya llegado a una altura de 300pies (91\,m) por encima de la
          altitud del nivel del suelo.
     \item La tasa de descenso sea menor a 4pies/s.
    \end{enumerate}

    
  \item En el \textbf{\LARGE{$\alpha$}}, el aterrizaje se
    determina al efectuar una misma lectura de presi\'on durante 10 segundos,
    con lo que se determina que el alt\'{i}metro est\'a ``quieto''.
\end{itemize}

No obstante ello, y como podr\'an observar en el video, la detecci\'on del
aterrizaje fue casi simult\'anea en ambos alt\'{i}metros.

%===================================================================
%    Cita:


%Algunas fotos adicionales:
%Image

%Image

%Los foquitos cubiertos por el nylon azul están conectados al Altim. ALFA y los
%otros al PF.  Los foquitos de la parte inferior están conectados al evento de
%apogeo y los de la parte superior al evento de apertura del principal.

%Cabe aclarar un par de cuestiones:

%El altímetro ALFA tiene 2 modalidades de trabajo: Ensayo y Vuelo.  En la
%modalidad de ensayo, deja prendidos los ignitores (foquitos) hasta que se
%detecta el aterrizaje, apagandolos al cabo del mismo.  Adicionalmente, en
%modalidad ensayo, avisa audio-visualmente al producirse el evento de despegue!
%En modalidad de vuelo, estos avisos no se efectúan.


%Para quienes quieran un detalle aún más amplio del registro del audio de ambos altímetros

%  Recuerden que el PF dá todas las medidas en pies y el altímetro ALFA lo hace en metros !!!   

%Pueden bajarlos desde acá: AUDIO ALTIMETROS

%Para comprender la trama de sonidos del PF, deben tener en cuenta que el mismo
%considera el 0 (cero) como una secuencia de 10 bip's y en el caso del ALFA el
%0 (cero) es un Biiiiip largo, diferenciado de los Bip's standard.

%    Cita:
%    Se configuró el altimetro PF de la siguiente forma:

%    Mach Delay apagado (off)  -  Lo indica con el primer 0 (cero) - 10 bips
%    Altitud de apertura del principal: 700pies = 213 mts.

%    Se registró una altitud de 1800 pies = 549 mts

%    LA SECUENCIA DEL ALTIMETRO PERFECTFLITE ES:

%    1) Arranca el alt con bip largo
%    2) Indica 10 bips para mach delay off
%    3) Indica la altitud del main configurada por microswitch - 700 pies
%    4) Indica la última altura registrada
%    5) De estar los ignitores conectados, indica q hay continuidad en los 2 ignitores con 3 beeps cortitos.

%    La lectura que se oye es la siguiete:

%    encendido - 0 - 700 - 1800

%    Beeeeeep (encendido)
%    pausa
%    bip-bip-bip-bip-bip-bip-bip-bip-bip-bip  (0 correspondiente a mach delay apagado)
%    pausa
%    bip-bip-bip-bip-bip-bip-bip  ( 7 )
%    bip-bip-bip-bip-bip-bip-bip-bip-bip-bip ( 0 )
%    bip-bip-bip-bip-bip-bip-bip-bip-bip-bip ( 0 )
%    pausa
%    bip ( 1 )
%    bip-bip-bip-bip-bip-bip-bip-bip ( 8 )
%    bip-bip-bip-bip-bip-bip-bip-bip-bip-bip ( 0 )
%    bip-bip-bip-bip-bip-bip-bip-bip-bip-bip ( 0 )
%    pausa
%    3 bips rapidos y cortitos en forma continua indicando continuidad en ambos ignitores.

%    Cita:
%    Se configuró el altimetro ALFA de la siguiente forma:

%    Mach Delay: 0 seg. (apagado)
%    Detección de despegue: 50 mts.
%    Altitud de apertura del principal: 200 mts.

%    Se registró una altitud de 553 mts

%    LA SECUENCIA DEL ALTIMETRO ALFA ES:

%    1) Encendido indicado por 2 bips cortos y uno largo
%    2) Indica continuidad en ignitor de apogeo (2 bips cortos)
%    3) Indica continuidad en ignitor del principal (2 bips cortos)
%    4) Indica la última altura registrada
%    5) Indica que fue efectuada la lectura del nivel del suelo y queda en modo de espera del despegue

%    La lectura que se oye es la siguiete:

%    encendido - apogeo ok (ok-ok) - principal ok (bip-bip) - 00553

%    bip-bip-biiiiiip (encendido)
%    pausa
%    bip-bip (2 correspondiente ignitor apogeo ok)
%    pausa
%    bip-bip (2 correspondiente ignitor principal ok)
%    pausa
%    biiiiiiip ( 0 )
%    biiiiiiip ( 0 )
%    bip-bip-bip-bip-bip  ( 5 )
%    bip-bip-bip-bip-bip  ( 5 )
%    bip-bip-bip ( 3 )
%    pausa
%    bip-bip (indicando que está armado y listo para despegue)
%=====================================================================
\section{Conclusiones.}

Se cumpli\'o con el objetivo de implementar el algoritmo para la estimaci\'on
de la altura de apogeo expresada en metros. Esto facilita el uso del
alt\'{i}metro en el campo.

Los ensayos simulados (virtuales y en la c\'amara barom\'etrica) tuvieron un
comportamiento adecuado a lo esperado. Es de destacar la comparaci\'on de
funcionamiento realizada con el PerfectFlite.

Consideramos que el software se encuentra en fase de experimentaci\'on. La
construcci\'on y puesta en marcha de nuevas unidades, permitir\'a acumular
datos y experiencia de funcionamiento. De esta forma se podr\'a evaluar su
comportamiento y realizar las modificaciones necesarias hasta llegar a una
versi\'on de vuelo del firmware declarada estable.

La pr\'oxima versi\'on incluir\'a el manejo de la interfase serial para el
seteo externo de los par\a'metros. En esta nueva versi\'on se incluir\'a el
programa de comunicaciones adecuado para esta tarea.

\newpage
\section{Agradecimientos.}

Agradecemos muy especialmente a las siguientes personas y grupos :

\begin{itemize}
\item \href{http://groups.yahoo.com/group/COHETES}{Grupo COHETES en Yahoo.}
\item \href{http://www.coheteriaamateur.com.ar}{Foro de coheter\'{i}a amateur.}
\item David Schultz.
\item Paul Kelly.
\item Robert DeHate.
\item Jerry Baumeister.
\end{itemize}

\vspace{2cm}
\begin{center}
\textbf{\LARGE{MUCHAS GRACIAS !!!!}}

\begin{tabular}{ccc}
\scalebox{0.26}{\includegraphics{Diego_Cappri_Reducida.jpg}} &
\scalebox{0.16}{\includegraphics{Marcelo_Hacker_Reducida.jpg}} &
\scalebox{0.18}{\includegraphics{Tabare_Perez_Reducida.jpg}}\\

\scalebox{0.241}{\includegraphics{Cesar_Dalceggio_Reducida.jpg}} &
\scalebox{0.30}{\includegraphics{encendido_oval.jpg}} &
\scalebox{0.25}{\includegraphics{Cristian_Davolio_Reducida.jpg}} \\

\end{tabular}

\end{center}

\newpage
\section{Bibliograf\'{i}a.}
\begin{itemize}
  \item \href{http://www.microchip.com}{Microchip} PICmicro Mid-Range MCU Family
      Reference Manual.
  \item \href{http://www.microchip.com}{Microchip} PIC12F629/675 Data Sheet
      8-Pin FLASH-Based 8-Bit CMOS Microcontrollers.
  \item PIC12F629/675 Rev. A Silicon/Data Sheet Errata.
  \item Notas de aplicaci\'on de \href{http://www.microchip.com}{Microchip}.
  \item \href{http://www.freescale.com}{Freescale Semiconductor},
      Inc. MPX5100/MPXV5100 SERIES Semiconductor Technical Data.
  \item Motorola AN1318 - Intefacing Semiconductor Pressure Sensors to
      Microcomputers.
  \item Motorola AN1573 - Understanding Pressure and Pressure Measurement.
\end{itemize}

\newpage
\section{Ap\'endices:}
\appendix
\section{El problema de la estimaci\'on de la altura.}

La altm\'osfera de la Tierra es una capa de aire extremadamente fina que se
extiende desde su superficie hasta el borde del espacio definido a 100\,km de
altura.  La fuerza de la gravedad mantiene esta capa de aire pegada a la
superficie de nuestro planeta.

Dentro de la atm\'osfera ocurren fen\'omenos qu\'{i}micos, termodin\'amicos y de
din\'amica de fluidos muy complejos. Como la atm\'osfera no es uniforme, sus
propiedades cambian constantemente. A estos cambios los conocemos bajo los
nombres de tiempo y clima y es la meteorolog\'{i}a la que se encarga de
estudiarlos y construir modelos para poderlos predecir.

Las variaciones de las propiedades del aire se extienden hacia arriba desde la
superficie terrestre.
El Sol calienta la superficie de la Tierra. Parte de este calor calienta el
aire cercano a esta superficie. El aire calentado se mueve por la atm\'osfera
por convecci\'on y difusi\'on. Es por este motivo que el aire cercano a la
superficie est\'a m\'as caliente y su temperatura decrece con la altura.

La velocidad del sonido depende de la temperatura y tambi\'en
disminuye con la altitud. 

La presi\'on del aire est\'a relacionada con el peso de la columna de aire
sobre una determinada regi\'on. A medida que subimos en la atm\'osfera, la
columna de aire por encima nuestro es cada vez menor. Por lo tanto, la
presi\'on decrece con la altura.

La densidad del aire depende de la temperatura y de la presi\'on y tambi\'en
decrece con la altura.

Para poder hacer uso de todas estas relaciones en las diversas disciplinas
cient\'{i}ficas y t\'ecnicas relacionadas con la atm\'osfera, es necesario
definir modelos  matem\'aticos que permitan predecir con verosimilitud las
variaciones de sus propiedades.

Estos modelos se construyen a partir de medidas de las variables
atmosf\'ericas. Las medidas son obtenidas de diversas formas como por ejemplo
estaciones meteorol\'ogicas, globos sonda, etc. Estas medidas se procesan
adecuadamente y luego son aproximadas a curvas te\'oricas. Es as\'i como se
obtienen las ecuaciones que permiten modelar el comportamiento de la
altm\'osfera.

Existen en la actualidad modelos que contemplan diferentes
situaciones a saber:

\begin{itemize}
\item d\'{i}a promedio o estandard.
\item d\'{i}a caluroso.
\item d\'{i}a fr\'{i}o.
\item d\'{i}a tropical. 
\end{itemize}

Estos modelos se actualizan cada pocos a\~nos para incluir los \'ultimos datos
atmosf\'ericos medidos.

Los modelos que vamos a presentar, desarrollados en la d\'ecada del 60, asumen
que la presi\'on $\mathbf{p}$, expresada en kiloPascales (kPa), y la temperatura
$\mathbf{T}$, expresada en grados Celsius ($^{\circ}$C), cambian solamente con la altitud
$\mathbf{h}$ expresada en metros (m) seg\'un las siguientes ecuaciones
definidas para tres zonas de la atm\'osfera:

\begin{itemize}
\item Estrat\'osfera alta: por encima de los 25000\,m.

  \begin{gather*}
    \mathbf{T} = -131.21 + 0.00299 \times \mathbf{h} \\
    \mathbf{p} = 2.488 \times {\left( \frac{\mathbf{T} + 273.1}{216.6} \right)}^{-11.388}
  \end{gather*}

\item Estrat\'osfera baja: entre 11000\,m y 25000\,m.
  \begin{gather*}
    \mathbf{T}=-56.46 \\
    \mathbf{p}=22.65 \times e^{\left(1.73 - 0.000157 \times \mathbf{h}\right)}
  \end{gather*}
\item Trop\'osfera: menos de 11000\,m.
  \begin{gather}
    \mathbf{T}=15.04 - 0.00649 \times \mathbf{h} \label{temperatura} \\
    \mathbf{p} = 101.29 \times {\left( \frac{\mathbf{T} + 273.1}{288.08}
    \right)}^{5.256} \label{presion}
  \end{gather}
\end{itemize}

La zona de trabajo para nuestros vuelos corresponde a la \textbf{TROP\'OSFERA}
(por debajo de los 11000\,m).

Seg\'un las ecuaciones \ref{temperatura} y \ref{presion}, vemos que la relaci\'on entre
presi\'on $\mathbf{p}$ y altura $\mathbf{h}$ en la trop\'osfera es
exponencial.
%\pagebreak

 El siguiente gr\'afico nos muestra esta relaci\'on:

\begin{center}
\scalebox{0.40}[0.25]{\includegraphics{modelo_atmosfera.png}}
\end{center}

Nuestro problema consiste en estimar $\mathbf{h}$ a partir de la medida de
$\mathbf{p}$.

De las ecuaciones \ref{temperatura} y \ref{presion}, correspondientes a la trop\'osfera, podemos deducir el c\'alculo
de la altura en funci\'on de la presi\'on:

\begin{gather}
\mathbf{h} = \left( \frac{1}{0.00649}\right) \times 288.08 \times
\left(1-\sqrt[5.256]{\frac{\mathbf{p}}{101.29}}\right) \label{altura}
\end{gather}

Esto sucede en el mundo anal\'ogico que es continuo e infinito. Pero nuestro alt\'imetro
trabaja en el mundo digital que es discreto y finito.

El conversor an\'alogo/digital incorporado en el micro, tiene una resoluci\'on
de 10bits. Esto significa que es capaz de discretizar su rango de trabajo
(0\,V a 5\,V) en $2^{10}$ = 1024 niveles o cuentas.

Esto nos da una resoluci\'on de $0.004888$\,V/cuenta.

El sensor de presi\'on absoluta MPX5100, tiene un rango de trabajo entre
$0.2$\,V y $4.7$\,V. Por lo tanto la conexi\'on al conversor del
microcontrolador se puede hacer directamente sin ning\'un acondicionamiento
anal\'ogico. El tratamiento del ruido se hace por software mediante la
implementaci\'on de un filtro digital recursivo.

El rango de trabajo en presi\'on va desde $115$\,kPa a $15$\,kPa lo cual nos
da una resoluci\'on de $22.22$\,kPa/V.

La relaci\'on que existe entre la presi\'on y el voltaje entregado por el
sensor es lineal seg\'un la siguiente funci\'on de transferencia:

\begin{center}
\scalebox{0.6}{\includegraphics{funcion_sensor.png}}
\end{center}

El microprocesador que controla el funcionamiento del alt\'{i}metro solamente
puede realizar operaciones aritm\'eticas muy sencillas como sumar, restar y
dividir/multiplicar por 2. Adem\'as estas operaciones se realizan sobre bytes.
Con un byte solamente es posible representar n\'umeros que van desde 0 a 255.
Estas son las herramientas de c\'alculo disponibles para resolver este
problema. Sumado a esto tenemos que agregar el problema de disponer de muy
poca memoria de datos (64 bytes de RAM y 128 bytes de EEPROM) y de programa
(1024 palabras).

Todas estas limitaciones nos llevan a tener que resolver dos problemas:
\begin{enumerate}
\item Un modelo de representaci\'on de n\'umeros adecuado al problema.
\item Un algoritmo para poder obtener la estimaci\'on de la altura en
  funci\'on de la presi\'on seg\'un la ecuaci\'on \ref{altura}.
\end{enumerate}

El modelo de datos se soluciona representando a los n\'umeros usando
m\'ultiples bytes. Es nuestra responsabilidad manejar adecuadamente esta
representaci\'on interna de n\'umeros decimales con coma fija.

Para el segundo problema se decidi\'o dividir la curva exponencial en 16
intervalos y aproximar cada uno de ellos a la mejor recta posible. Una tabla
guarda en memoria las pendientes y ordenadas en el origen de cada una de esas
rectas que fueron calculadas previamente. Seg\'un el valor en cuentas de la
presi\'on medida, se elije la recta adecuada y se calcula la altura. La
ventaja de este c\'alculo es que lo que se tiene que calcular es una funci\'on
del tipo $y=ax+b$ con lo cual el el problema se reduce al desarrollo de una
rutina de multiplicaci\'on adecuada al modelo de datos elegido.

\newpage
\section{Protocolo de comunicaciones.}

\subsection{Definici\'on de ``PROTOCOLO''}

El t\'ermino protocolo para procedimientos de comunicaciones de datos fue usado
por R. A. Scantlebury y K. A. Bartlett en el Laboratorio F\'{i}sico Nacional en
Inglaterra, en un memorando que fue escrito en abril de 1967. El memorando fue
titulado ``A protocol for use in the NPL data communications network''.(Un
protocolo para ser usado en la red de comunicaciones de datos NPL).

Un protocolo es una clase de acuerdo sobre el intercambio de informaci\'on en un
sistema distribuido. La definici\'on completa de un protocolo, en realidad,
representa mucho m\'as que la definici\'on de un lenguaje:

\begin{itemize}
\item Define un formato preciso para validar mensajes, tales como los puntos y
  las rayas hacen al c\'odigo Morse, por ejemplo (una sintaxis).
\item Define reglas de procedimiento para el intercambio de datos (una
  gram\'atica).
\item Define un vocabulario de mensajes v\'alidos que pueden ser
  intercambiados, con sus significados (sem\'antica).
\end{itemize}

N\'otese que la gram\'atica de protocolo debe ser l\'ogicamente coherente y
completa, es decir, bajo todas las circunstancias posibles, las reglas
deber\'{i}an establecer normas en t\'erminos no ambiguos de lo que est\'a permitido y
lo que est\'a prohibido.

\subsection{Especificaci\'on de los protocolos de comunicaci\'on.}

Cuando se comparan o se seleccionan protocolos, o cuando llevamos a cabo el
dise\~no b\'asico de los protocolos, debemos caracterizarlos con m\'as detalles,
pero no demasiado como para perder la imagen global. Por lo tanto sugerimos
seguir los siguientes puntos de referencia para la especificaci\'on de los
protocolos de la comunicaci\'on:

\begin{itemize}
\item Qu\'e configuraci\'on se le asigna al protocolo y qu\'e clase de comunicaci\'on
  ser\'a controlada?
\item Cu\'ales bloques de datos ser\'an transferidos (de qu\'e longitud)?
\item Cu\'ales funciones de la comunicaci\'on ser\'an implementadas?
\item Cu\'ales son las palabras de protocolo y los formatos?
\item Cu\'ales son los valores de los par\'ametros del protocolo usado?
\item Cu\'ales son las secuencias de palabras de protocolo y cu\'ales son las
  fases de la comunicaci\'on?
\item Cu\'al deber\'{i}a ser la reacci\'on ante las palabras de protocolo (y cu\'ales
  son los diagramas de estados)?
\end{itemize} 

Los primeros 5 puntos deber\'an estar especificados para cualquier protocolo
mientras que los \'ultimos 2 puntos son alternativos ya que es suficiente
especificar uno de ellos.

\subsection{Protocolo de comunicaci\'on \textbf{HMI} (Human Machine
  Interfase).}

\subsubsection{Especificaci\'on y consideraciones generales.}

\begin{itemize}
  
\item El protocolo es ac\'ustico y visual, unidireccional donde el
  alt\'{i}metro ser\'a quien ejerza el mon\'ologo.
  
\item Las se\~nales ser\'an de un solo tono/destello.
  
\item La duraci\'on de las tramas ser\'a variable dependiendo de los valores a
  transmitir.
  
\item Se define como \texttt{PAUSA ENTRE TRAMAS \textbf{(PT)}}, a un per\'{i}odo de 3000 milisegundos
  sin sonido/luz.
  
\item Se define como \texttt{PAUSA ENTRE VALORES DE UNA MISMA TRAMA \textbf{(PV)}}, a un per\'{i}odo de
  2000 milisegundos sin sonido/luz.
  
\item Se define como \texttt{PAUSA ENTRE SE\~NALES DE UN MISMO VALOR \textbf{(PS)}}, a un per\'{i}odo de
  500 milisegundos sin sonido/luz.
  
\item Se define como \texttt{SE\~NAL CORTA \textbf{(SC} o ``\textbf{\Huge{.}}'')}, a un tono/destello luminoso de 500
  milisegundos de duraci\'on.
  
\item Se define como \texttt{SE\~NAL LARGA \textbf{(SL} o ``\textbf{\Huge{---}}'')}, a un tono/destello luminoso de 2000
  milisegundos de duraci\'on.

\end{itemize}


\subsubsection{Estructura de las tramas.}

\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|} \hline
 \texttt{VALOR 0} & \texttt{PV} & \texttt{VALOR 2} & \texttt{PV} &
 $\longrightarrow$ & \texttt{VALOR n} & \texttt{PT} \\ \hline
\end{tabular}
\end{center}

La longitud estar\'a dada por la cantidad de valores a transmitir. 

\subsubsection{Estructura de los valores.} 

\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|} \hline
 \texttt{SE\~NAL 0} & \texttt{PS} & \texttt{SE\~NAL 2} & \texttt{PS} &
 $\longrightarrow$ & \texttt{SE\~NAL n} & \texttt{PS} \\ \hline
\end{tabular}
\end{center}

La longitud estar\'a dada por el valor a transmitir. 

\subsubsection{Representaci\'on de los valores l\'ogicos.} 

\begin{description}

\item [OK] 

\begin{tabular}{|c|c|c|c|} \hline
\textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} \\ \hline
\end{tabular}

\item [NO OK] 

\begin{tabular}{|c|} \hline
\texttt{\textbf{\Huge{---}}} \\ \hline
\end{tabular}

\end{description}

\subsubsection{Representaci\'on de los valores num\'ericos.}

\begin{tabular}{|ccccccccccccccccccc|} \hline

0 $\rightarrow$ & \texttt{\textbf{\Huge{---}}} & & & & & & & & & & & & & & & & & \\   

1 $\rightarrow$ & \textbf{\Huge{.}} & \texttt{PS} & & & & & & & & & & & & & & & & \\

2 $\rightarrow$ & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & & & & & & & & & & & & & & \\

3 $\rightarrow$ & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & & & & & & & & & & & & \\

4 $\rightarrow$ & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & & & & & & & & & & \\

5 $\rightarrow$ & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & & & & & & & & \\

6 $\rightarrow$ & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & & & & & & \\

7 $\rightarrow$ & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} &  & & & \\

8 $\rightarrow$ & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} &  & \\
 
9 $\rightarrow$ & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} &
\textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} & \textbf{\Huge{.}} & \texttt{PS} \\ \hline

\end{tabular}

\newpage
\section{Diagrama de flujo del programa principal.}
\vspace{2cm}

\begin{center}
\input{prin01.pic}
\end{center}

\newpage
\begin{center}
\input{prin02.pic}
\end{center}

\newpage
\vspace{2cm}
\begin{center}
\input{prin03.pic}
\end{center}

\newpage
\begin{center}
\input{prin04.pic}
\end{center}

\newpage
\begin{center}
\input{prin05.pic}
\end{center}

\newpage
\begin{center}
\input{prin06.pic}
\end{center}

\newpage
\begin{center}
\input{prin07.pic}
\end{center}

\newpage
\begin{center}
\input{prin08.pic}
\end{center}

\newpage
\subsection*{Nota \#1:}

El proceso de inicializaci\'on del microcontrolador implica la configuraci\'on
de toda la funcionalidad del mismo usando secuencias de instrucciones muchas
veces en un \'orden espec\'{i}fico que estar\'a definido en los manuales del
fabricante.

Lo primero que se hace es deshabilitar las interrupciones para evitar de esta
forma cualquier comportamiento err\'atico del alt\'{i}metro. Es una medida de
seguridad muy importante. Debemos de tener en cuenta que en este momento el
cohete, que est\'a en la rampa de lanzamiento, tiene todas sus cargas
pirot\'ecnicas armadas. Este procedimiento debe hacerse con la secuencia de
instrucciones, si las hay, que el fabricante del microcontrolador especifique
en los manuales.

Otras tareas de inicializaci\'on del microcontrolador son las siguientes:

\begin{itemize}
\item Configuraci\'on de las funciones de cada pata del microcontrolador.
\item Configuraci\'on del conversor A/D:
  \begin{itemize}
  \item Selecci\'on del voltaje de referencia.
  \item Selecci\'on del formato del dato digital obtenido.
  \item Tiempo de conversi\'on (4\,$\mu$s para nuestro caso).
  \item Selecci\'on del canal a usar.
  \end{itemize}
\item Configuraci\'on de las interrupciones. Para nuestro caso la \'unica
  interrupci\'on que se va a atender es la provocada por el desborde del
  TIMER0 del micro que se produce cada 4.096\,ms.
\item Calibraci\'on del oscilador interno del microcontrolador con el valor
  que viene grabado de f\'abrica.

\end{itemize}

\subsection*{Nota \#2:}

La detecci\'on del apogeo utiliza un concepto Bayesiano (estimaci\'on
estad\'{i}stica basada en el conocimiento previo de alguna
informaci\'on). Supone que la presi\'on es la m\'axima posible como valor
inicial. A medida que el vector sube, la presi\'on baja hasta encontrar un
m\'{i}nimo. En ese momento se corrobora usando una banda de confianza que ese
valor m\'{i}nimo encontrado es precisamente el correspondiente al apogeo.

\subsection*{Nota \#3:}

En este punto calculamos el valor de presi\'on correspondiente a la diferencia
de altura, tomando como referencia la presi\'on en rampa, para eyectar el
sistema de recuperaci\'on principal en el caso de un cohete con sistema dual
de recuperaci\'on (drogue y principal):

\begin{center}
Presi\'on principal $=$ Presi\'on en rampa - $\Delta$ Presi\'on principal
\end{center}

\subsection*{Nota \#4:}

Para el c\'alculo de la altura m\'axima lograda usamos la siguiente f\'ormula:

\begin{center}
  Altura m\'axima $=$ Altura absoluta del apogeo - Altura absoluta de la rampa
\end{center}

Para comprender mejor los problemas del c\'aculo de la altura y su
implementaci\'on en el firmware del vuelo del alt\'{i}metro, ver el ap\'endice
correspondiente.

\newpage
\section{Diagrama de flujo de la rutina de servicio de interrupciones
  (\textbf{ISR})}

\begin{center}

\input{isr.pic}

\end{center}

\newpage
\section{Anotaciones}
\newpage

\vspace*{20cm}
\begin{center}
\shabox{\small{Este documento fue preparado con \LaTeX{} de Leslie Lamport.}
Por m\'as informaci\'on consultar al \href{http://www.tug.org}{\textbf{TUG}} -
\textbf{\TeX{} Users Group}}
\end{center}

\end{document}

%===========================
%
%Video del ensayo con el PerfectFlite
%http://www.youtube.com/watch?v=LtZBj-b0oJI
